<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui"
	xmlns:s="http://jboss.org/seam/faces">

<ui:composition template="/_template.xhtml">
	<f:metadata>
		<f:viewParam name="produto.id" value="#{produtoBean.produtoId}" />
		<s:viewAction action="#{produtoBean.carregaProduto}"/>
	</f:metadata>
	
	<ui:define name="titulo">
		Cadastro de Produtos
	</ui:define>
	
	<ui:define name="corpo">
		<div id="conteudo">
				<h2>
					<h:outputText value="#{msg['produto.novoProduto']}"
						rendered="#{empty produtoBean.produto.id}" />
					<h:outputText value="#{msg['produto.editarProduto']}"
						rendered="#{not empty produtoBean.produto.id}" />
				</h2>
			<p:messages id="mensagens" globalOnly="true"/>
			<h:form if="formSuperior">
				<p:fieldset legend="#{msg['produto.dadosProduto']}">
					<p:outputLabel for="nome" value="#{msg['produto.nome']}: " />
					<p:inputText id="nome" value="#{produtoBean.produto.nome}">
						<f:validator validatorId="comecaComMaiuscula"/>
					</p:inputText>
										
					<p:outputLabel value="#{msg['produto.descricao']}: " for="descricao" />
					<p:inputTextarea id="descricao"
						value="#{produtoBean.produto.descricao}" />

					<p:outputLabel value="#{msg['produto.preco']}: " for="preco" />
					<p:inputText id="preco" value="#{produtoBean.produto.preco}" required="true"
						requiredMessage="#{msg['produto.preco.obrigatorio']}" 
						validatorMessage="#{msg['produto.preco.minimo']}">
						<f:validateDoubleRange minimum="0.50"/>
					</p:inputText>
				</p:fieldset>
				
				<s:validateForm validatorId="nomeedescricao" />
				<s:validateForm validatorId="nomejaexistente" />
				<h:panelGroup>
				<h:commandButton value="#{msg['uberdist.btnGravar']}"
					action="#{produtoBean.grava}" style="float: left;">
					<f:ajax execute="@form" render="@form :formInferior :mensagens" />
				</h:commandButton>
				<h:commandButton value="#{msg['uberdist.btnCancelar']}"
					action="produto" rendered="#{not empty produtoBean.produto.id}"
					immediate="true" style="float: left; margin-left: 15px;"/>
				</h:panelGroup>

			</h:form>

			<h:panelGroup rendered="#{not empty produtoBean.produtos}">
				<h2>#{msg['produto.titulo.listagem']}</h2>
			</h:panelGroup>

			<h:form id="formInferior">
				<p:dataTable id="lista" value="#{produtoBean.produtos}"
					var="produto" rendered="#{not empty produtoBean.produtos}"
					rows="5" paginator="true" lazy="true">
					<p:column headerText="#{msg['produto.nome']}">
						<h:outputText value="#{produto.nome}" />
					</p:column>
					<p:column headerText="#{msg['produto.descricao']}">
						<h:outputText value="#{produto.descricao}" />
					</p:column>
					<p:column headerText="#{msg['produto.preco']}">
						<f:facet name="footer">
							<h:outputText value="#{produtoBean.somatorioPrecoProdutos}">
								<f:convertNumber pattern="#0.00" currencyCode="BRL" currencySymbol="R$"/>
							</h:outputText>
						</f:facet>
						<h:outputText value="#{produto.preco}">
							<f:convertNumber pattern="#0.00" currencyCode="BRL" currencySymbol="R$"/>
						</h:outputText>
					</p:column>
					<p:column headerText="#{msg['uberdist.acoes']}">
						<h:commandLink value="#{msg['uberdist.lnkRemover']}" action="#{produtoBean.remove(produto)}">
							<f:ajax render="@form" />
						</h:commandLink>
						|
						<h:commandLink value="#{msg['uberdist.lnkAlterar']}">
							<f:setPropertyActionListener target="#{produtoBean.produto}"
								value="#{produto}">
								<f:ajax render=":formSuperior" />
							</f:setPropertyActionListener>
						</h:commandLink>
					</p:column>
				</p:dataTable>
			</h:form>
		</div>
	</ui:define>
</ui:composition>
</html>